這個系列以 RAG(Retrieval-Augmented Generation)為名,但真正的重點大部分都落在資料處理與驗證。
整體開發會遵循「先求有,再求好」的原則:每個主題先做出一個能動的版本,後續再依需求逐步補強。
為了方便整理,這篇文章列出一個依照「主題」排序的清單,後續每天的內容會依主題展開與補充。
說明:
這是整個系列的基礎。沒有 (上下文、問題、答案) 成對資料,後續的 RAG 或驗證根本沒辦法進行。這裡會嘗試三種不同的入口點:
Task:如何快速建立一批可用的 QA 對。
Action:實作與比較不同入口方法。
說明:
自動生成的資料不一定可靠,因此需要標註平台來做人工驗證。Label Studio 是一個開源的標註工具,可以幫助我們把 QA 對校正成「ground truth」。只有在具備真實標註資料的情況下,後續才能:
因此 ground truth 不只是「資料清洗」,更是整個驗證框架的基石。
Task:建立一套標註流程,作為後續評估與驗證的基準。
Action:安裝、設定 Label Studio,並嘗試標註幾批 QA 對,建立最小可用的 ground truth。
說明:
有了資料與 ground truth 之後,第一個 baseline 系統就是 Naive RAG:簡單的檢索 + 生成,沒有太多優化,但能作為對照組。
Task:建立一個能動的 baseline 系統。
Action:串接檢索(BM25 / 向量檢索)與 LLM 生成,得到最初答案。
說明:
RAG 的答案怎麼評估?除了人工比對,還可以設計自動化驗證:
Task:找到一種可重複、可量化的驗證方式。
Action:嘗試 LLM as a judge、人工比對,以及混合驗證方法。
說明:
在 baseline 與驗證完成後,才能談「優化」。這部分分成三個方向:
Task:探索讓系統產生更高品質答案的方法。
Action:嘗試不同檢索策略(hybrid、reranker)、生成策略(prompt、few-shot)、以及驗證方式。
(context, question, answer) 對的獲取
1.1 gen from context
- 1.1.1 get context
- 1.1.2 context → (question, answer)
1.2 gen from question
- 1.2.1 get question
- 1.2.2 question → (context, answer)
1.3 gen from answer
- 1.3.1 get answer
- 1.3.2 answer → question → context
- 1.3.3 answer → context → question
搭建 Label Studio 獲得 ground truth
RAG baseline 的搭建
驗證框架的探索
提升方法的探索
- Answer Faithfulness
- Context Recall
- Integration